home *** CD-ROM | disk | FTP | other *** search
-
- Microsoft« DirectX« 8.0 SDK
-
- This CD is the Microsoft DirectX 8.0 Software Development Kit (SDK).
- It contains all DirectX software required to create DirectX 8.0
- compliant applications. Parts of this SDK will also be made
- available for download at the Microsoft DirectX developer web page
- (http://msdn.microsoft.com/directx).
-
- Major components include: DirectX 8.0 system components (runtimes);
- DirectX 8.0 Application Programing Interface (API) Documentation for
- each of the DirectX core areas (written for C++ or Visual Basic
- developers); DirectX 8.0 headers & libraries; Sample applications
- and source code; miscellaneous tools and utilities.
-
- After installing, those new to DirectX should start with the
- DirectX 8.0 documentation. More seasoned developers may also want
- to view the "WHAT'S NEW" section. Professional DirectX developers
- should refer to the "KNOWN ISSUES" section prior to raising concerns.
-
- __________________________________________________________________
-
-
- Contents:
-
- - INSTALLATION
- - WHAT'S NEW
- - CD LAYOUT
- - DIRECTX 8.0 SDK RELEASE NOTES AND KNOWN ISSUES
- - COMPILER SUPPORT
-
- __________________________________________________________________
-
-
- INSTALLATION:
-
-
- ALWAYS UNINSTALL PREVIOUS RELEASES of the DirectX SDK prior to
- installing DirectX 8.0 SDK Release (see UnInstall). The directory
- structure and file names have changed significantly. Installing on
- top of a previous installation will cause you problems.
-
- On Windows 2000 systems, you must be logged in as administrator to
- install the DirectX 8.0 runtimes.
-
- If you install the BDA cab, the DirectX 8.0 setup program requires
- that you restart your system.
-
- UnInstall:
-
- To uninstall, use "Add/Remove Programs" from the Control Panel to
- uninstall the InstallShield installations.
-
- __________________________________________________________________
-
-
- WHAT'S NEW:
-
-
- DirectX Audio (DirectSound & DirectMusic)
- =========================================
-
- DirectX 8.0 audio covers both DirectSound and DirectMusic API's. In
- DirectX 8.0, these API's are more closely aligned and tied together.
-
- There are many new features. They include:
-
- Effects processing on DirectSound Buffers
- DLS2 synthesis
- Arbitrary loop points
- Release waveforms
- Optional Filter per voice
- 6-stage envelope
- Ramped volume scaling
- Time-stamped playback
- "Audiopaths": a powerful and easy way to use the DirectMusic DLS2 synthesizer
- for sound effects programming.
- Submixing of audio prior to 3D processing (by DLS2 synthesizer)
- Automatic streaming and ACM compression (ADPCM, etc.)
- Composition enhancements
- Audio Scripting
-
- We also think you will want to look at using the DLS2 synthesizer as your
- main sound effects engine. The DLS2 synthesizer is accessed primarily through
- the DirectMusic API's. Please do not let the word, "Music" mislead you; the
- DirectX 8.0 DirectMusic API's have been enhanced *specifically* for sound effects
- playback. The new DirectMusic API's that are designed to support sound effects
- refer to audiopaths. Please investigate audiopaths; they provide a lot of
- cool features for sound effects. For example, if you have multiple sounds
- that need to come from the same 3d location, you can pre-mix them (using Audiopaths)
- and use only one 3d hardware buffer to play them.
-
- Parameter Validation:
- DirectSound in particular has some greater parameter validation in place
- when the DirectSound8 interfaces are used.
-
- -Waveformats are more tightly parsed
- -You can no longer create a DirectSoundBuffer with both CTRL_3D and CTRL_PAN set
- -You can no longer create a DirectSoundBuffer with CTRL_3D set and a wave format
- with more than 1 channel. I.e. Only mono buffers may be created with CTRL_3D.
-
- Scripting is very exciting. It puts much of the control over the audio
- implementation of the game into the hands of the sound designer. Using
- scripts, audio designers can change implementations, make the music 'magically'
- interactive, and play different sound effects based on in-game variables.
- It also drastically shortens the edit-integrate-listen cycle. This should
- result in improved sound effects and music, with much less game-programmer
- time required.
-
- There are sections in the documentation on a new FullDuplex interface and
- "Capture effects." These interfaces are not currently supported.
-
- If you are using DirectPlayVoice, you should use those interfaces. If your
- application requires audio capture outside of DirectPlayVoice,
- you should use the existing DirectSoundCapture interfaces.
-
-
- Direct3D
- ========
-
- Migration of DirectDraw into Direct3D:
-
- In DirectX 8.0, DirectDraw« is fully integrated into Microsoft Direct3D
- to enable drastically simplified application initialization, improved data
- allocation and management performance, and reduced memory footprint.
- The new Direct3D infrastructure provides the services that are called
- at relatively low frequency. These services comprise:
-
- - Creation of Direct3D
- - Creation of resources (textures, vertex buffers etc)
- - Display mode selection
- - Presentation of rendered images to the display
-
- New Graphics Features for DirectX 8.0 are:
-
- Parallel vertex input streams for more flexible mapping to dynamic
- application data structures. Programmable vertex processing language
- enables programmers to write hardware shaders for:
-
- - Morphing/tweening animation
- - Matrix palette skinning
- - User-defined lighting models
- - General environment mapping
- - Procedural geometry
- - Any other developer-defined algorithm
-
- Programmable Pixel processing language enables programmers to write
- hardware shaders for:
-
- - Per-pixel lighting/bump mapping
- - Per-pixel environment mapping
- - Any other developer-defined algorithm
-
- MultiSample Rendering support enables:
-
- - Full-scene antialiasing
- - Multisample effects such as motion blur, depth-of-field, etc.
-
- Point Sprites enable:
-
- - High-performance rendering of particle systems
-
- 3-D Volume textures enable:
-
- - Range-attenuation in per-pixel lighting
- - Volume atmospheric effects
- - Easy texturing of very complex geometry
-
- Higher-Order Primitive Support:
-
- - For enhancing the appearance of 3-D content
- - Facilitating mapping of content from major 3-D authoring tools
-
- Higher-Level Technologies:
-
- - 3-D content creation tool plugins for export into Direct3D of skinned
- meshes using a variety of Direct3D techniques such as, multi-resolution
- LOD geometry, and higher order surface data.
-
- Direct3D Feature Notes:
-
- No significant API changes are contemplated beyond this point.
- All implemented features have been tested individually
- to some extent, but they have not been tested in exhaustive combinations
- yet. Many features in DirectX 8.0 are awaiting new hardware, however
- there is at least one implementation available for each of the features
- shipped:
-
- - Programmable vertex shaders are supported on the host CPU. On CPUs they
- will operate with performance comparable to HW implementations and can be
- used immediately for DirectX 8.0 prototyping and development.
- - Programmable pixel shaders are supported on the host CPU using refrast
- only. These can be used for prototyping DirectX 8.0 shaders for use when
- hardware ships.
- - Parallel DMA data input is supported on refrast and the SW geometry pipeline.
- - Point Sprites are supported in refrast, software T&L pipeline, and should
- be supported in a prototype DirectX 8.0 driver from at least one hardware
- manufacturer.
- - Volume Textures are supported in refrast.
- - Multisample rendering is supported in refrast and future hardware.
- - Higher-Order Primitives are supported in refrast and via D3DX utilities.
-
- D3DX
- ====
-
- Debug Binaries for D3DX:
-
- The D3DX library is a static library. However, to help debugging, we also
- have a debug only dynamic library of D3DX in DirectX 8.0. To use this, link
- with the d3dx8d.lib which is an import lib corresponding to the D3DX8D.DLL.
- If you are reporting a bug and sending Microsoft an example that reproduces
- that behavior, please make sure the executable is linked to the dynamic debug
- library.
-
- The dynamic debug d3dx8 library is for debugging only and is not intended
- for use of shipping applications. D3DX8D.DLL is installed as part of the
- DirectX 8.0 SDK setup, not as part of the redistributable runtime setup.
- This will not be available as part of future operating systems.
-
- If apps want to statically link to the debug d3dx8 library they need to
- link to d3dx8dt.lib. To statically link to a retail d3dx8 library please
- link to d3dx8.lib.
-
- The D3DX Effect Framework
-
- The D3DX effect framework allows you to define shading effects using a text
- file that describes the various techniques of implementing an effect. For
- an example of an effect file see water.sha in the C samples media directory.
-
-
- DirectInput
- ===========
-
- DirectInput for DirectX 8.0 features a major addition, the DirectInput
- Mapper. The Mapper makes it possible for applications to code to their
- in-game actions, without the effort of figuring out the actions represented
- on the device itself. Additionally, the Mapper makes user configuration
- of devices much simpler by offering a default configuration UI.
-
- DIPROP_KEYNAME is supported by the IDirectInputDevice8::GetProperty
- method. DIPROP_KEYNAME retrieves the localized key name, in the form
- of a DIPROPSTRING, from a DirectInput DIK_* value.
-
- DIPROP_SCANCODE is supported by the IDirectInputDevice8::GetProperty
- method. DIPROP_KEYNAME retrieves the device scancode, in the form of a
- DIPROPDWORD, from a DirectInput DIK_* value.
-
-
- DirectPlay
- ==========
-
- DirectPlay has been completely rewritten in DirectX 8.0 to provide the
- robust scalability required to build high performance, massively
- scaleable network games. With version 8.0, DirectPlay also provides
- voice communication via the DirectPlay Voice API.
-
- Note: In these release notes the phrases "DirectPlay4", "DirectPlay4
- interface" or "DirectPlay4 session" are used to mean the IDirectPlay4
- interface or a session hosted using the IDirectPlay4 interface, even
- if that interface or session is implemented using the dlls that are
- part of DirectX 8.0. "DirectPlay8", "DirectPlay8 interface", and
- "DirectPlay8 session" mean the IDirectPlay8... family of interfaces,
- or a session hosted using the IDirectPlay8... family of interfaces.
-
- Since DirectPlay8 has been completely re-written from the ground up,
- the DirectPlay8 interfaces are not extensions of the existing
- DirectPlay4 interfaces. i.e. the DirectPlay8 interfaces do not
- inherit from the DirectPlay4 interfaces in the object oriented sense.
-
- Also, DirectPlay8 sessions are not network compatible with DirectPlay4
- sessions.
-
- Note that the DirectPlay4 interfaces are still present in DirectPlay8
- and are still compatible with previous versions of DirectPlay. So games
- written for DirectPlay4 will still run on systems with DirectX 8.0
- installed.
-
- To enable maximum scalability, DirectPlay8 uses a callback model. All
- indications from DirectPlay8 are delivered to the application via an
- application supplied callback function. Therefore DirectPlay can indicate
- multiple events to the application in parallel on different threads.
-
- Additionally, performance critical operations such as Send and Receive
- can be performed without copying data, and without thread switching.
-
- This programming model allows DirectPlay applications to achieve maximum
- possible performance and scalability on both single-processor and
- multi-processor hardware.
-
- DirectPlay8 also adds:
- - Better support for NATs, Firewalls, and Proxy Servers
- - Application defined payloads on session enumerations and replies
- - Revised addressing scheme that is URL ruled based designed to be human
- readable and portable
- - The use of I/O completion ports in Windows 2000
- - Improved ease of use through the removal of obtuse services, for example
- groups within groups
-
- The DirectPlay Voice interfaces allow you to quickly and easily establish
- voice communications over an existing DirectPlay8 or DirectPlay4 session.
-
- DirectPlay Voice provides the following features:
- - Peer to peer, forwarding server, and mixing server voice topologies
- - A variety of codecs from 1.2kbit/sec to 64kbit/sec, that can be used
- royalty free in DirectPlay Voice.
- - Voice detection to automatically trigger voice transmission
- - Automatic gain control to automatically adjust the recording volume level
- - Adaptive queuing that provides a smooth speech stream with minimum latency
- over different and changing network conditions
- - Integration with DirectSound & DirectSoundCapture
- - Sound Hardware Test wizard
- - Support for IDirectPlay8 and IDirectPlay4 transport sessions
-
- DirectPlay8 still has all the benefits of previous versions of DirectPlay,
- including:
- - session setup and teardown
- - session discovery
- - application launching
- - player management
- - group management
- - client/server and peer to peer operation
- - peer to peer host migration
- - bandwidth throttling protocol
-
-
- DirectShow
- ==========
-
- DirectX 8.0 marks the first release that DirectShow has been part of the
- core DirectX redistribution. This means that for the first time,
- applications using DirectShow need not install a separate redist, and
- current DirectX users can now take advantage of DirectShow in their
- applications. Adding to the existing capabilities for audio and video
- playback and capture that DirectShow provided, this new release also
- provides the following new features:
-
- Windows Media Format Support: Two new filters enable DirectShow applications
- to read and write files in Windows Media Format. The ASF Reader filter
- reads and parses Windows Media Format files. The ASF File Writer filter
- writes Windows Media Format files; it also does the necessary multiplexing
- and compressing.
-
- DirectShow Editing Services (DES): This is a complete API for timeline and
- switching services built on top of DirectShow. This API implements the
- core of non-linear editing services, and allows for the creation of
- composite media from a variable number of source audio and video streams.
- By allowing real-time effects and transitions, true "on-the-fly" source
- switching, run-time compositing, run-time seeking, and graph management,
- DES provides a powerful high-level way to use DirectShow, while
- still allowing applications to access lower-level DirectShow functions.
- DES replaces cutlists, which are no longer supported.
-
- New DVD Support: Two new interfaces, IDVDControl2 and IDVDInfo2, greatly expand
- the functionality of the DVD Navigator. The new MSWebDVD ActiveX« control
- makes this functionality available to script-based applications.
- New DVD features include: Karaoke multichannel audio support, audio volume
- control through IBasicAudio, support for frame stepping and frame-accurate
- seeking, simplified access to DVD text information strings, and improved support
- for parental management controls.
-
- DirectX Media Objects: DirectX Media Objects (DMOs) are a new way to write
- data-streaming components. Like DirectShow filters, DMOs take input data and use
- it to produce output data. However, the application programming interfaces
- (APIs) for DMOs are much simpler than the corresponding APIs for DirectShow. As
- a result, DMOs are easier to create, test, and use than DirectShow filters.
- A wrapper filter is provided to allow DMOs to be used within DirectShow.
-
- Media Parameters: Media parameters are a new set of APIs that support run-time
- changes to an object's properties. They offer precise control over properties
- that change rapidly and require both high performance and repeatability. They
- enable a property to follow an exact curve, such as a sine wave or
- inverse-square curve, in real time.
-
- New Filters:
- - MJPEG Decompressor: Decodes a video stream from motion JPEG to uncompressed video
- - MJPEG Compressor: Compresses an uncompressed video stream using
- motion JPEG compression.
- - Null Renderer: Discards samples without displaying or rendering the sample data.
- Applications can use this filter to discard data from a stream.
- - Sample Grabber: Retrieves media samples as they move through the filter graph.
- Applications can use this filter to obtain poster frames or other media data.
-
- Dynamic Graph Building: DirectShow applications can now change the graph
- while it is still playing. This allows new audio or video streams to be added
- to a graph, effects to be inserted in the graph without any visible gap in the
- playback, and chains of filters to be paused and run independent of the main graph.
-
- Push Model Clock Support: This allows for improved synchronization between
- audio and video streams. The default audio renderer can now be slaved to
- another clock, allowing for applications to deal with timing differences
- between clocks on sound cards and capture devices, among other scenarios.
-
- Graph Edit enhancements: GraphEdit now displays filter registration information
- in the Insert Filters dialog and allows you to spy on existing graphs in
- external processes (if those processes register their graphs).
-
-
- DirectMusic Producer
- ====================
-
- This version of Producer features many new features to aid in both
- authoring and auditioning of DirectMusic content. These features include
- authoring support for audio path configurations, which manages pchannel
- and synth assignments as well as effects routing, the new DLS level 2
- format (which includes stereo waves, layering of regions, and filtering)
- and a new API for scripting, which allows composers and sound designers
- to integrate audio content directly into an application. Other major
- features include new track types, including a wave track, a script
- track, a secondary segment trigger track and a melody track, which
- integrates a variable approach with greater control of form.
-
-
- DirectX Control Panel
- =====================
- Developers can now toggle between DirectX retail and debug system components
- through the DirectX Control Panel.
-
-
- Broadcast Driver Architecture
- ======================
-
- Broadcast Driver Architecture (BDA) is a set of Ring 0 and Ring 3 software
- components based on the DirectShow« architecture for streaming multimedia
- broadcast content. BDA is also a specification that defines how custom
- components, such as filters for parsing private data, interface with the
- rest of the system. Digital-TV applications can use the Ring 3 components
- to build filter graphs, implement a single model for tuning across all
- network types, automate the storage and retrieval of electronic program
- guide information, and capture IP data including ATVEF announcements,
- triggers, and packages.
-
- __________________________________________________________________
-
-
- CD LAYOUT:
-
-
- The following is a brief description of the directories found with a complete
- DirectX 8.0 SDK download. Depending on options specified during
- installation, some of these directories can be installed on your hard drive.
-
- \Bin
- High level DirectX applications & tools.
- All can be accessed from the Start menu if "Utilities" are installed.
-
- Note: Japanese systems will require Internet Explorer 5.0 (IE5) for
- the DirectX Control Panel to display properly. IE5 can be found at
- http://www.microsoft.com/windows/ie/default.htm.
-
-
- \Doc
- Contains reference documentation for the DirectX 8.0 APIs.
- This Documentation must be viewed with Windows HTMLHelp.
-
- Note: The HTMLHelp viewer requires a minimum installation of
- Internet Explorer 5.0 (IE5). IE5 can be found at
- http://www.microsoft.com/windows/ie/default.htm.
-
- \Essentls
- \DMusProd (Direct Music Producer)
- - DirectMusic Producer is the authoring tool for Direct Music. It
- allows composers and sound designers to use the interactive and
- variable resources of DirectMusic along with the consistent sound
- performance of DLS. DirectX Audio Scripting can also be authored
- and tested within Producer. The DirectMusic Producer setup program
- and all files are located here.
-
- \Extras
- \Direct3D
- - Skinning exporter tools
- \DirectShow
- - Contains the DVDBoilerplate. See readme.txt within the directory
- for more information.
- - Contains additional media that can be used with DirectShow and the
- DirectShow Editing Services (DES) interfaces.
- \Documentation
- - Contains DirectX 7 HTMLHelp Documentation for English and Japanese.
- - Also contains DirectX 7 Documentation in Microsoft Word format
- (English only).
- \GameVoice
- - Contains the installer for the English Version of Game Voice Share,
- which includes voice communication and game launching functionality.
- For more information on Game Voice, visit http://www.gamevoice.com.
- \Symbols
- - Contains directories of DirectX 8.0 symbol files for
- Win2000 and Win9x (retail and debug for each).
-
- \Include
- contains DirectX 8.0 include files for DirectX core components.
-
- \Lib
- contains DirectX 8.0 library files for DirectX core components.
-
- \License
- Text versions of the DirectX SDK and End User License Agreements and
- the Redistributable License Agreement.
-
- \Redist
- Redistributable versions of the DirectX 8.0 Runtime.
-
- \Samples
- Contains all sample code and sample binaries. Most samples can be
- accessed from the Start menu when installed via the downloaded
- InstallShield setup.
-
- \SDKDev
- This directory contains the runtime installs that are installed with
- the SDK. They are English only and contain both debug and retail
- DirectX 8.0 system components that can be "switched" between retail
- and debug without re-installing. For the DirectX 8.0 components,
- retail or debug can be switched via the DirectX Control Panel.
-
- The \retail folder contains the setup that will install non-DirectX 8.0
- retail components while the \debug folder will install all debug
- components. Both install DX8 retail and debug components. These are
- the only components that can be "switched".
-
- __________________________________________________________________
-
-
- DIRECTX 8.0 SDK NOTES AND KNOWN ISSUES
-
-
- DirectX Audio (DirectSound & DirectMusic)
- =========================================
-
- Below are some known issues with DirectMusic and DirectSound in
- DirectX 8.0 that you may encounter.
-
- - ParamEQ and Distortion effects have parameters that are sampling rate
- dependent.
- Setting these params to a value that is out of range for that sampling
- rate will result in:
- Distortion: Parameters are 'clipped' at the valid range for the
- sampling rate
- ParamEQ: If the frequency is greater than can be supported by the
- sampling rate, the effect is disabled- In the DirectMusic
- 3DAudio sample, there may be some breakup if Doppler is set > 4
- - DirectSound buffers that are created with DSBCAPS_CTRLFX must be at
- least 100ms in length.
-
-
- Direct3D
- ========
-
- - All executables compiled against earlier DirectX 8.0 betas must be
- recompiled with this version to run.
- - Alt-enter in the samples results in texture corruption for some drivers.
- Workaround: Get newer drivers.
- - The value for MaxPrimitiveCount defines the max number of vertices
- as well as the max number of primitives that can be sent to a
- DrawIndexedPrimitive or DrawPrimitive call.
- - A bug in the Windows2000 kernel causes an issue upon mode-switches for
- AGP surfaces locked with the NOSYSLOCK flag. The contents of any such
- surface may become inaccessible for the duration of the NOSYSLOCK lock
- if a mode-switch happens after the Lock and before the Unlock. This happens
- for both DX7 and DX8 applications. The most likely scenario is a DX8
- application running on a driver that supports hardware vertex buffers,
- but using software vertex processing (fixed or shader). Under these
- scenarios, Direct3D might keep a NOSYSLOCK lock on an AGP vertex buffer.
- If the user alt-tabs out of the application or does anything else to cause
- a mode-change, the thread writing into the vertex buffer may fault. There
- is no known workaround. Microsoft will fix this issue in the next version
- of Windows and will attempt to ship a fix in a future Windows2000
- Service Pack.
- - A bug in the DX6 and DX7 implementation of
- IDirectDraw*::GetDeviceIdentifier causes the DirectDraw runtime to write
- four extra bytes past the end of the structure. To work around this issue,
- allocate an extra four bytes at the end of your DDDEVICEIDENTIFIER*
- structure. This bug does not exist in the IDirect3D8::GetAdapterIdentifier
- version.
- - The Direct3D8 run-time exhibits the following behvior on all Windows NT
- platforms. Run a full-screen Direct3D8 application, press Ctrl-Alt-Del,
- press ESC. The desktop will appear, but the display card will still be in
- the application's resolution, not the proper desktop resolution. (The user
- may alt-tab back to the application at this time.) A fix for this will be
- in the next release of DirectX, and the problem will be fixed in the next
- version of Windows NT. Developers are urged NOT to try to work-around this
- problem nor code their own solutions, since such solutions are very likely
- to interact poorly with our own fix.
- - Terminating a process with un-released vertex buffers on Win9x DX7 APIs
- can cause instability. This is caused by a bug in the automatic per-process
- cleanup code in DirectDraw which causes VBs to be leaked permanently (until
- reboot) on all Win9x platforms: Windows 95, 98, Millenirum. Applications
- should be carefully coded to ensure all Vertex Buffers are correctly released
- before exiting the process.
- - Applications should be careful when responding to the WM_MOUSEMOVE message.
- If the application calls IDirect3DDevice8::SetCursorPosition with a coordinate
- that is outside the current display mode size, then the Direct3D run-time may
- cause another WM_MOUSEMOVE, which may cause the application to call
- IDirect3DDevice8::SetCursorPosition again, resulting in an infinite loop.
- The application should either be careful not to call
- IDirect3DDevice8::SetCursorPosition with invalid positions, or should never
- call IDirect3DDevice8::SetCursorPosition with repeated positions.
- One common scenario for generating invalid mouse cursors is to remove the
- menu style from a window incorrectly when going full-screen. The SDK sample
- applications incorrectly use SetWindowLong to remove the menu bar from the
- window before going fullscreen. The correct technique is to call
- "hOldMenu = SetMenu(hWnd, NULL)'" before going fullscreen, and then
- "SetMenu(hWnd, hOldMenu);" before returning to windowed mode.
- - When using the function ValidateDevice on Win9x the return value will be
- DD_OK if it is successful.
-
- Point Sprites:
-
- - When using the Direct3D software T&L pipeline (device created with
- D3DCREATE_SOFTWARE_VERTEXPROCESSING flag set or with
- D3DCREATE_MIXED_VERTEXPROCESSING flag and software vertex processing
- toggled on), then point sprite support is guaranteed. When using
- hardware vertex processing, some older drivers may not support point
- sprites, indicated by d3dcaps->MaxPointSize = 0. Upgrading to a DX8
- driver for these parts will enable them.
-
- To ensure consistent behavior for point sprite support, set
- D3DRS_CULLMODE = D3DCULL_NONE
- D3DRS_FILLMODE = D3DFILL_SOLID
- when rendering point sprites.
-
- Vertex Shaders:
-
- - Two vertex shader instructions may produce implementation-specific
- results for out-of-range inputs, such as the log of a negative number.
- The log, logp and y- component of the lit instruction macro should not
- be passed negative values for this reason.
-
- Driver/Device Specific Issues:
-
- - The Windows Millennium driver for the ATI Rage 128 fails (draws nothing)
- when using vertex shaders which output more than two texture coordinates
- per texture coordinate set when the D3DTTFF_PROJECTED bit is not set.
-
- D3DX
- ====
-
- - This product includes software developed by the University of California,
- Berkeley and its contributors D3DX Mesh APIs.
- - The ID3DXSkinMesh interfaces currently only support 16-bit mesh. 32-bit
- mesh support is not yet implemented.
- - All other D3DX Mesh interfaces do support 32-bit meshes even though the
- docs say they do not.
- - D3XGenerateAdjacency currently ignored the epsilon value and uses 0.0f
- as the epsilon.
- - In D3DXMatrixPerspectiveFOV, the aspect ratio is x/y instead of y/x.
-
-
- DirectInput
- ===========
-
- - There is a bug in DirectInput which causes the Logitech Wingman Formula wheel to
- report pedal data on the wrong axes.
- - There are some know issues that can cause mouse behavior to be very sluggish
- when debugging using DirectInput. There are two reg files that will
- assist with this issue. They are:
- Mouse and Keyboard Emulation On.reg
- Mouse and Keyboard Emulation Off.reg
- "Mouse and Keyboard Emulation On.reg" will force all mouse calls through
- dinput emulation, thus making the mouse perform properly inside the debugger.
- "Mouse and Keyboard Emulation Off.reg" will turn off force emulation.
- Only use these keys on development machines, they are not intended to be
- redisted as they are a global setting that effects all Direct Input clients.
- - The following devices are supported with device images in this release.
- + ACT LABS RS
- + ACT LABS Force RS
- + Gravis Xterminator Dual Control
- + Gravis Blackhawk Digital
- + Gravis Gamepad Pro USB
- + Gravis Gamepad Pro
- + Gravis Eliminator Gamepad Pro
- + Gravis Xterminator Digital GamePad
- + InterAct/3dfx SV-262A HammerHead Fx
- + InterAct Axispad
- + InterAct SV-251 Raider Digital
- + Logitech WingMan Formula (Yellow)
- + Logitech WingMan Extreme Digital 3D
- + Logitech WingMan Gamepad Black (USB)
- + Logitech Wingman Rally Force USB
- + Logitech Wingman Rumblepad
- + Microsoft Sidewinder Gamepad Pro
- + Microsoft SideWinder Force Feedback Wheel
- + Microsoft SideWinder Force Feedback Pro
- + Microsoft Sidewinder FF 2
- + Microsoft Sidewinder Dual Strike
- + Microsoft Sidewinder Precision 2
- + Microsoft Sidewinder Plug and Play
- + Microsoft SideWinder Game Pad
- + Microsoft SideWinder Precision Racing Wheel
- + Microsoft SideWinder Precision Pro
- + Microsoft SideWinder Freestyle Pro
- + Microsoft SideWinder 3D Pro
-
-
- DirectPlay
- ==========
-
- The following are known issues with DirectPlay in this release that
- you may need to work around.
-
- - Note that the dwTimeoutUntilKeepAlive member of the DPN_CAPS structure
- specifies a minimum value. The first keepalive packet may be sent as
- much as 30 seconds later than the minimum value specified in this
- member. For example, if you set dwTimeoutUntilKeepAlive to 60000
- (60 seconds) the first keepalive packet may be sent anywhere from
- 60 to 90 seconds after the last normal packet was sent.
- - The "debug output level" slider on the DirectPlay tab of the DirectX
- control panel is not functional. For instructions on how to change the
- debug output level, see the "dp8log.txt" file in the
- [sdkroot]\bin\DXUtils directory.
- - To use DirectPlay Voice in full duplex mode, we recommend that you update
- to the latest drivers for your audio device. Some older drivers do not
- provide reliable full duplex performance.
- - If you connect to a location that you have enumerated, the enumeration
- will be canceled automatically for you. If you attempt to do a cancel
- asynchronous operation on this enum after the connect is completed you
- will get back DPNERR_USERCANCEL error code. Be aware that this is the
- expected behavior and that you should not exit with an error condition.
- - The modem service provider implementation for DirectPlay8 requires
- TAPI 2.0 functionality. TAPI 2.0 is available as an installed component
- on Windows 98 and later, but not on Windows 95. If your application
- requires modem functionality on the Windows 95 platform, the TAPI 2.0
- patch for Windows 95 can be obtained on the Microsoft FTP site
- (ftp://ftp.microsoft.com/developr/TAPI/tapi2195.zip) and distributed
- with you application.
-
- Notes on NATs (Network Address Translators):
-
- - There are many different NAT solutions available, some of which are
- different from others. We have attempted to document some of the issues
- with various NAT solutions, but is not comprehensive. Please refer to
- the DirectX Developer Page at http://msdn.microsoft.com/directx for
- further information on these issues.
-
- DirectPlay Voice codecs via Windows ACM (Audio Compression Manager):
-
- - DirectPlay Voice uses the following codecs via the Windows ACM:
- - Microsoft ADPCM
- - Microsoft GSM
- - DSP Group Truespeech
- - Installation of these codecs with Windows is optional. If they
- are not installed, then one or more of the compression types in
- DirectPlay Voice will not function. If the application attempts
- to use a compression type that is not functional due to a missing
- ACM codec, it will receive the DVERR_COMPRESSIONNOTSUPPORTED
- return code.
- - On Windows 2000, the user can install these codecs through the
- Add/Remove Hardware wizard. The user should select
- "Add/Troubleshoot a device". When a list of hardware is presented,
- the user should select "Add a new device", then on the next
- page select "No, I want to select the hardware from a list".
- This will bring up a list of hardware. Select "Sound, video, and
- game controllers". The "Audio Codecs" item is listed under
- "(Standard system devices)".
- - On Windows 9x, the user can install these codecs through the
- Add New Hardware wizard. When prompted, the user should select
- "No, I want to select the hardware from a list". In the list of
- device types, codecs are listed under "Sound video and game
- controllers". The codecs are listed under two manufacturers.
- The ADPCM and GSM codecs are listed under "Microsoft Audio
- Codecs" and the Truespeech codec is listed under "DSP Group".
-
-
- DirectShow
- ==========
-
- - The GraphEdit Tool (and some of the DirectShow samples) requires MFC42.DLL
- to be present on the system. The DirectX SDK Setup does not install this
- DLL. This will only be an issue on Windows 95 systems and will require you
- to install Microsoft Visual C++ to acquire the DLL.
- - Application development using the DirectShow base classes libraries requires
- installation of the DirectShow samples. The source code for the base classes
- is now included as a sample project, rather than as a separate Classes\Base
- directory. You must compile these base classes to generate strmbase.lib and
- strmbasd.lib, which are no longer installed as binary files. If you are
- linking with strmbase.lib or strmbasd.lib with your own application, be sure
- to build and link with the updated DirectX 8 libraries (instead of the older
- libraries that are installed with Visual C++ or the Microsoft Platform SDK).
- - The samples included with the SDK are configured to compile and link with
- the updated libraries, which are generated by building the BaseClasses project.
- Further build instructions are provided in:
- <DXSDKInstallFolder>\samples\Multimedia\DirectShow\readme.txt.
- - The <streams.h> header file, along with many other DirectShow-specific header
- files, is now located in the DirectShow samples BaseClasses directory,
- which includes the BaseClasses source code and header files. You must add
- the BaseClasses directory to the beginning of your project's include path
- settings in order for Visual C++ to find all of the updated header files.
- - To use the Teletext Decoder Fonts that are shipped with DX8, make sure that
- the WST_* fonts are installed by examining the \windows\fonts directory.
- - There is a known problem with the MP3 decoder filter when used with
- Audio Effects DMOs. If you add an audio effect DMO (like WavesReverb, Echo,
- or Flange) to an existing MP3 filter graph, the audio could be played back
- at double speed. The problem would occur whenever the MP3 decoder is connected
- to a downstream audio effect dmo (via the dmo filter wrapper) that offers a
- default audio input type which doesn't match the native format of the
- uncompressed MP3 stream. For example, if you render a 22kHz MP3 file and
- add a DMO Audio effect, the MP3 filter could misinterpret the input type as
- being 44kHz when it is actually 22kHz. This would not be a problem for 44kHz
- MP3 files. This issue will be fixed in a future release.
- - If you have the SDK on CD-ROM, the Extras\DirectShow\Media directory
- contains additional media that can be used with DirectShow and the DirectShow
- Editing Services (DES) interfaces. We have included DV-encoded AVI videos,
- larger MPEG videos, and higher-quality JPEG images. Since the DV files are
- very large, you should copy them to your hard disk before playing them to
- ensure the best performance.
- - Remote graph spying with GraphEdit works only on Windows 2000.
- - The DirectShow Editing Services (DES) Color Generator source filter may
- generate blue or green components incorrectly if they have small values.
- For best results, use solid primary colors or set Blue and Green
- components to values of either 0xFF or 0x00.
-
-
- Broadcast Driver Architecture
- ======================
-
- Known issues with Broadcast IP Data Reception under Windows 2000:
-
- - After rebooting a Windows 2000 system with a BDA receiver card installed,
- the BDA NDIS IP NIC is not immediately active. It becomes active only
- when an application inserts the BDA IPSink filter into a graph and connects
- its input pin. Once activated by connecting the IPSink filter's input pin,
- it takes 20 to 30 seconds for the BDA NDIS IP NIC to be assigned an IP
- address. The address assigned will be a Net 10 address. Once activated,
- the BDA NDIS IP NIC will remain active until the system is rebooted.
- - There may be some applications that use the BDA NDIS IP NIC as the default
- LAN adapter. These apps will fail if the BDA NDIS IP NIC is active. To
- de-activate the BDA NDIS IP NIC, reboot the system and do not run a TV graph
- or application.
-
-
- Documentation
- =============
-
- - For proper viewing of the DirectX Documentation, install the docs from
- the DirectX 8.0 SDK CD. Specify a full installation, or if you chose a
- Custom install, ensure that you've selected Documentation.
- - The known issues with the DirectX 8.0 Documentation are written up in a
- separate file. You will find these issues listed in the
- DirectX8_Doc_Readme.txt file found in the <DXSDKCDRoot>\dxf\doc\DirectX8
- folder. This file is also installed into the <DXSDKInstallFolder>\doc\DirectX8
- when DirectX8 Documentation is installed.
-
-
- Samples
- =======
-
- Miscellaneous Issues:
-
- - Some samples will compile with errors with the UNICODE flag defined.
- - Visual C/C++ 5 compatibility in DirectX 8.0 depends on Service Pack 3
- for Visual Studio 97. If you see the following errors:
- "fatal error LNK1106: invalid file or disk full: cannot seek to 0x389bc8bf"
- "Internal error during Pass1"
- then you need to upgrade your Visual C/C++ 5 installation. Service packs
- for Visual Studio can be found at http://msdn.microsoft.com/vstudio/sp/vs97.
-
- Direct3D Samples:
-
- - There are miscellaneous issues with some display hardware & drivers.
- Please let us know of any problems you encounter and specify whether you
- believe it is sample or driver related.
-
- DirectShow Samples:
-
- - There are several .XTL sample files in the \media folder. These files
- demonstrate some of the functionality available in the DirectShow Editing
- Services. You can render these files using the XTLTest C++ sample and
- the XTLTestVB and DexterVB VisualBasic samples. All provided XTL files
- refer to media that ships in the SDK's media directory. Rendering XTL
- files is a great way to get an idea of what the new DirectShow Editing
- Services APIs make possible. For a simple demo, drag a few of the SDK
- media directory's sample .XTL files onto the XTLTestVB sample's client area.
- - The DirectShow Visual Basic samples demonstrate more of the DES functionality
- than the C++ samples. Be sure to run SlideShowVB and TrimmerVB if you are
- interested in DES. You can also use the DexterVB ("Dexter Explorer")
- application as an XTL development/test tool.
- - The Texture3D sample is known to fail on some systems (referencing
- invalid memory), for which you may see an error message. This failure is
- in initialization of D3D. We recommend updating your video card drivers
- to the most current revision, as that usually resolves the problem.
- - The DirectShow IDL files are currently located in the
- \include\DShowIDL directory of the SDK for your convenience.
- - You will be required to build the \BaseClasses libraries before any sample
- that depends on them can be built or executed. Please review the Readme.Txt
- file in the DirectShow samples root directory for more information on
- building the samples.
-
-
- DirectX for Visual Basic Samples:
-
- - DBMON.exe is a console application which allows the Visual Basic DirectX
- developer to take advantage of extended output that debug installs of
- DirectX provide. This application works only under Windows 2000.
- To use, execute the application. All debug output will be captured and sent
- to the console window. If you are not seeing debug output, ensure that
- you have installed the debug version of DirectX, and that you are running
- Windows 2000.
- - DXVB Messenger Server is the server portion of a client/server instant
- messaging application. This sample requires the use of ActiveX Data Object
- (ADO) to maintain the data needed. If you are running Windows 9x, you must
- have the latest version of ADO installed on your machine to compile or run
- this sample. You can install the latest ADO while Visual Basic Professional
- is being installed or you can download the latest ADO from the web at:
- http://www.microsoft.com/data/ado/. ADO is installed by default with
- Visual Basic 6 Enterprise.
- - If you are experiencing problems searching for and connecting to sessions
- using DirectPlay for VisualBasic, you may need to update your system.
- To update, install DCOM98 from:
- http://download.microsoft.com/msdownload/dcom/98/x86/en/dcom98.exe
-
-
- Other
- =====
-
- - The DirectDraw "Debug Level" slider in DirectX Control Panel Applet does
- not function. Instead use the "Debug Output Level" slider on the Direct3D
- tab, this will effect both DDraw and D3D8. Also note that DirectDraw labels
- it's debug spew as coming from "Direct3D8".
- - The DirectX runtime will not operate on NEC PC98 systems. SDK and Runtime
- installations have been intentionally blocked on this system.
- - The DirectX 8.0 runtime requires a Pentium compatible CPU for operation.
- The DirectX runtime setup will not install on processors that do not report
- Pentium compatibility. Some older Cyrix processors, while compatible with
- the Pentium instruction set, report as x486 processors, and thus do not
- support installation of the DirectX 8.0 run time.
- - When installing the DirectX 8.0 runtime from the DirectX SDK you will
- notice that the size requirements are inflated from previous DirectX versions.
- For example, if you were only to install a DirectX 8.0 runtime from the
- DirectX SDK onto a system with low disk space, you would see that at least
- 120 MB is required. This is because both the retail and debug runtimes are
- included in each of the DirectX SDK runtime installs (this allows developers
- to switch between retail and debug without having to re-install). However,
- this inflated size is not true of the redistributable runtimes shipped with
- the SDK. Redistributable installs will require significantly less disk space.
- While this number is dependent on the disk format (Fat16/32 vs. NTFS) we
- expect approximately 40 MB of free space is required for uncompression and
- installation and approximately 15 MB once installed (and this is only true for
- systems with no previous DirectX version installed). The DirectX Setup API
- will check for and display error messages when these requirements are not met.
- - Windows 95 Japanese Systems will require MS UI Gothic patch for Windows 95
- or Internet Explorer 5.0 (or after) for the DirectX Control Panel to display
- properly. MS UI Gothic Patch can be found at
- http://www.microsoft.com/JAPAN/win95/msgotupd/default.htm and IE5 (or after)
- can be found at http://www.microsoft.com/windows/ie/default.htm.
-
- __________________________________________________________________
-
-
- COMPILER SUPPORT
-
- All DirectX 8.0 SDK samples are developed and compiled with Visual Studio 6.0.
- We have provided Visual Studio 6.0 DSP files for your convenience.
-
- All DirectX 8.0 libraries, with the exception of the DirectShow libraries, should
- be compatible with Visual Studio 5.0 SP3 or higher.
-
- __________________________________________________________________
-
-
- SPECIAL THANKS
-
- Marlin Studios
-
- Textures used in the Billboard sample, tree02S.tga, tree01S.tga & tree35S.tga,
- are provided courtesy of Marlin Studios (http://www.marlinstudios.com).
- They are provided for use with this sample only and cannot be distributed
- with any application without prior written consent.
-
- Viewpoint Digital, Inc.
-
- The model used by the Visual Basic AutoParts sample, engine1.x, is provided
- courtesy of Viewpoint Digital, Inc. (http://www.viewpoint.com). It is provided
- for use with this sample only and cannot be distributed with any application
- without prior written consent. V6 Engine Model copyright 1999 Viewpoint
- Digital, Inc..
-
- 3DCAFE and Platinum Pictures
-
- The model in the Dolphin samples, Dolphin.x, is derived from the model files
- (dolphins.zip) provided courtesy of 3DCAFE and Platinum Pictures
- (http://www.3dcafe.com/). It is provided for use with this sample only.
- For further terms of use please visit the 3DCAFE site or contact 3DCAFE.
-